home *** CD-ROM | disk | FTP | other *** search
/ TPUG - Toronto PET Users Group / TPUG Users Group CD / TPUG Users Group CD.iso / AMIGA / AMICUS / AMICUS13.ADF / FutureSound / getsize.c < prev    next >
C/C++ Source or Header  |  1986-08-05  |  1KB  |  50 lines

  1. /* GetSize.c */
  2.  
  3. /* This routine returns the size of a SoundFile */
  4. /* which was saved in either IFF or FutureSound */
  5. /* format, and which resides in the current */
  6. /* default directory. */
  7.  
  8. /* Usage : GetSize(filename) */
  9. /* filename is a pointer to a string */
  10.  
  11. /* converted to use AmigaDOS I/O calls, John Foust, 6/22/86 */
  12.  
  13. #include "exec/types.h"
  14. #include "lattice/stdio.h"
  15. #include "SoundErrors.h"
  16.  
  17. #include "libraries/dosextens.h"
  18.  
  19. extern struct FileHandle *Open();
  20.  
  21. extern ULONG SizeIFF();
  22.  
  23. ULONG GetSize(filename)
  24. char *filename;
  25. {
  26. /* FILE *fp; */
  27. struct FileHandle *fp;               /* File Pointer */
  28.    ULONG len;                        /* Data Length */
  29.  
  30.    /* Is it an IFF File? */
  31.    if((len = SizeIFF(filename)) == 0)
  32.    {
  33.       /* No, then open for FutureSound format */
  34.       if((fp = Open(filename,MODE_OLDFILE)) == 0)
  35.       {
  36.          return((ULONG) Error(OPEN_ERROR,filename));
  37.       }
  38.       /* Read Data Length */
  39.       if (Read(fp,&len,sizeof(len)) == 0)
  40.       {
  41.          return((ULONG) Error(READ_ERROR,filename));
  42.       }
  43.       /* Close File */
  44.       Close(fp);
  45.    }
  46.    /* Return Data Length */
  47.    return(len);
  48. }
  49.  
  50.